Providing cellular-specific transport layer service by way of cell-site proxying in a network environment

ABSTRACT

A method is provided in one example embodiment and includes receiving a first request from a first user equipment by a first transport layer proxy located within an access network The first request includes a request to establish a user session between the first user equipment and a remote server. The method further includes establishing a first transport layer session between the first user equipment and the first transport layer proxy, establishing a second transport layer session between the first transport layer proxy and the remote server, and establishing a first control channel between the first transport layer proxy and a transport layer function manager within a core network. The method further includes sending session state parameters associated with the first transport layer session and the second transport layer session to the transport layer function manager using the first control channel.

TECHNICAL FIELD

This disclosure relates in general to the field of communications and, more particularly, to providing cellular-specific transport layer service by way of cell-site proxying in a network environment.

BACKGROUND

Today, a mobile user's data session is anchored on a mobile gateway such as a (GGSN, PGW) working as part of a mobile packet core. Anchoring the mobile data session on the mobile gateway includes anchoring both control and data traffic flows between the user's device and the mobile gateway. Control traffic is exchanged between the user's device and the gateway, and then terminated on the gateway. In an uplink direction, the data traffic is decapsulated from a mobile encapsulation protocol and presented on a Gi interface as Internet Protocol (IP) packets. The data traffic is then often sent either to a service provider private network to deliver services or service provider private content, or is sent to the Internet for content delivery. The mobile gateway terminates tunnel encapsulation specific to the mobile network and presents IP traffic on its Internet facing interface. The mobile gateway is also responsible to applying various services to the data stream based on a user profile. Examples of such services include quality of service (QoS), deep packet inspection, traffic management, lawful intercept, http header enrichment as well as billing the data stream sent to and/or from the user. These services are applied in the mobile packet core, and mobile operators typically have a complete infrastructure to provide these services to the mobile user based on his or her profile. All of the data traffic between the user equipment and its termination point in both the uplink and downlink directions passes via the mobile gateway.

Some Radio Access Network (RAN) vendors enable the execution of “services” inside a base station. These services may run as an application on virtual machines, and the virtual machines may be hosted on the base station's processing infrastructure. All (GTP-based) traffic sent from and received by the base station is routed through the base station hosted “services” to enable in-line service delivery on per-subscriber packet stream. The idea is that by hosting services in the base station, caching, storing and latency saving functions can execute and optimize for the wireless specifics. These services operate “on-top-of” the cellular infrastructure and are not integrated into the cellular networking standards.

BRIEF DESCRIPTION OF THE DRAWINGS

To provide a more complete understanding of the present disclosure and features and advantages thereof, reference is made to the following description, taken in conjunction with the accompanying figures, wherein like reference numerals represent like parts, in which:

FIG. 1 is a simplified block diagram of an example embodiment of a communication system for providing cellular-specific transport layer service by way of cell-site proxying in a network environment;

FIG. 2 is a simplified block diagram illustrating a particular embodiment of the first base station of the communication system of FIG. 1;

FIG. 3 is a simplified block diagram illustrating a particular embodiment of the GGSN/PGW of the communication system of FIG. 1;

FIGS. 4A-4B are a simplified flow diagram illustrating potential operations of the communication system associated with one embodiment of the present disclosure;

FIG. 5 is simplified flowchart illustrating potential operations associated with a first transport layer function proxy according to one embodiment of the present disclosure;

and

FIG. 6 is simplified flowchart illustrating potential operations associated with a second transport layer function proxy according to one embodiment of the present disclosure.

DETAILED DESCRIPTION OF EXAMPLE EMBODIMENTS Overview

A method is provided in one example embodiment and includes receiving a first request from a first user equipment by a first transport layer proxy located within an access network The first request includes a request to establish a user session between the first user equipment and a remote server. The method further includes establishing a first transport layer session between the first user equipment and the first transport layer proxy, establishing a second transport layer session between the first transport layer proxy and the remote server, and establishing a first control channel between the first transport layer proxy and a transport layer function manager within a core network. The method further includes sending session state parameters associated with the first transport layer session and the second transport layer session to the transport layer function manager using the first control channel.

In a particular embodiment, the method further includes sending network address information of the first transport layer proxy to the transport layer function manager. In another particular embodiment, the method further includes allocating the session state parameters to the first transport layer session and the second transport layer session by the first transport layer proxy. In another particular embodiment, the session state parameters include a first protocol control block associated with the first transport layer session and a second protocol control block associated with the second transport layer session. In still another particular embodiment, at least one of the first protocol control block and the second protocol control block include one or more of a source network address, a destination network address, a source port, and a destination port associated with the user session.

In another particular embodiment, the control channel is an out-of-band channel between the first transport layer proxy and the transport layer function manager. In another particular embodiment, the method further includes optimizing operating parameters of the first transport layer session based upon wireless channel conditions experienced by the first user equipment.

In other particular embodiments, the first transport layer proxy resides within a first base station and the transport layer function manager resides within a packet gateway. In other particular embodiments, the method further includes receiving an uplink transport layer packet associated with the user session by a second transport layer proxy from the first user equipment, determining whether the session state parameters associated with the user session are known to the second transport layer proxy, requesting the session state parameters from the transport layer function manager when the session state parameters are not known to the second transport layer proxy, and receiving the session state parameters from the first transport layer proxy or the transport layer function manager.

In still another particular embodiment, the method further includes establishing a transport layer user session between the first user equipment and the remote server using the session state parameters, and forwarding the uplink transport layer packet to the remote server by the second transport layer proxy using the transport layer user session. In still another particular embodiment, the uplink transport layer packet is received by second transport layer proxy when the first user equipment experiences handover between a first base station including the first transport layer proxy and a second base station including the second transport layer proxy.

Example Embodiments

Turning to FIG. 1, FIG. 1 is a simplified block diagram of an example embodiment of a communication system 100 for providing cellular-specific transport layer service by way of cell-site proxying in a network environment. The particular embodiment illustrated in FIG. 1 is shown as including general packet radio service (GPRS) network elements. However, it should be understood that in other embodiments any other suitable network elements may be used. The communication system of FIG. 1 includes first user equipment (UE) 102 a and second user equipment 102 b. First user equipment 102 a may connect wirelessly to a first base station 104 a and second user equipment 102 b may connect wirelessly to a second base station 104 b. In one or more embodiments, first base station 104 a and second base station 104 b are mobile base stations of a radio access network (RAN). In a particular embodiment, first base station 104 a and second base station 104 b are each an Evolved Node B (eNodeB) Long Term Evolution (LTE) base station node. In still other embodiments, first base station 104 a and second base station 104 b are each a Universal Mobile Telecommunications System (UMTS) base station node. First base station 104 a may be further connected to a first Serving GPRS support node (SGSN) and/or intermediate router 106 a, and second base station 10 b may be further connected to a second SGSN/intermediate router 106 b. An SGSN, such as first SGSN/intermediate router 106 a and second SGSN/intermediate router 106 b may be responsible for the delivery of data packets from and to user equipment within its geographical service area. Its tasks may include packet routing and transfer, mobility management, logical link management, and authentication and charging functions.

Each of first SGSN/intermediate router 106 a and second SGSN/intermediate router 106 b may be further connected to a Gateway GPRS support node (GGSN)/packet gateway (PGW) 108 within a mobile core network. GGSN/PGW 108 may be further connected to one or more core network services 110 within the mobile core network. Core network services 110 may include authentication, authorization, and accounting (AAA) services, billing services, policy services, and other core network services. In the particular embodiment illustrated in FIG. 1, the core network services may include AAA services, an online charging system (OCS), a policy and charging rules function (PCRF), a home location register (HLR), and a home subscriber server. GGSN/PGW 108 may be further connected to the Internet 112, a mobile data center 114, and service provider services 116. In a particular embodiment, GGSN/PGW 108 is responsible for the internetworking between the GPRS network and external packet switched networks such as the Internet and X.25 networks. In particular embodiments, GGSN/PGW 108 is an anchor point that enables mobility of user equipment 102 a-102 b in GPRS/UMTS networks and maintains routing information necessary to tunnel protocol data units (PDUs) to the SGSN that services the particular user equipment 102 a-102 b, e.g. one or more mobile stations. GGSN/PGW 108 may encapsulate GPRS packets received from first SGSN/intermediate router 106 a into an appropriate packet data protocol (PDP) format (e.g., IP or X.25) and send packets out on the corresponding packet data network. GGSN/PGW 108 may further store a current SGSN address associated with a user and his or her profile in a location register of GGSN/PGW 108. GGSN/PGW 108 may further be responsible for IP address assignment and is the default router for connected user equipment (UE) 102 a-102 b. GGSN/PGW 108 may further perform authentication, billing/charging functions and other functions via core network services 110. Communication system 100 may further include an IP backhaul from the RAN to GGSN/PGW 108.

First base station 104 a includes a first transport layer function proxy component 118 a, and second base station 104 b includes a second transport layer function proxy component 118 b. GGSN/PGW 108 includes a transport layer function manager component 120. In accordance with various embodiments, each of first transport layer function proxy component 118 a, second transport layer function proxy component 118 b, and transport layer function manager component 120 may include one or more software components, one or more hardware components, or a combination of software and hardware components. First transport layer function proxy component 118 a is in communication with transport layer function manager component 120 using a first control channel 122 a established between first transport layer function proxy component 118 a and transport layer function manager component 120. Similarly, second transport layer function proxy component 118 b is in communication with transport layer function manager component 120 using a second control channel 122 b established between second transport layer function proxy component 118 b and transport layer function manager component 120. In one or more embodiments, first control channel 122 a and second control channel 122 b are each an out-of-band channel established between the respective transport layer function proxy components 118 a-118 b and transport layer function manager component 120. In still other embodiments, first control channel 122 a and second control channel 122 b are in-band channels. Communication system 100 further includes a remote server 124 in communication with GGSN/PGW 108. In a particular embodiment, remote server 124 includes a Transmission Control Protocol (TCP) server.

In accordance with various embodiments, first transport layer function proxy component 118 a and second transport layer function proxy component 118 b are each embedded as a cell-site transport layer function proxy, such as a cell-site Transmission Control Protocol (TCP) proxy, as an in-line service on first base station 104 a and second base station 104 b, respectively. In one or more embodiments, first transport layer function proxy component 118 a is configured to control and optimize transport layer performance, such as TCP performance, specifically for a wireless channel (such as a cellular wireless channel) between first base station 104 a and first user equipment 102 a. Similarly, in one or more embodiments, second transport layer function proxy component 118 b is configured to control and optimize transport layer performance specifically for a wireless channel between second base station 104 b and second user equipment 102 b.

In particular embodiments, first transport layer function proxy component 118 a and second transport layer function proxy component 118 b may implement one or more TCP optimization techniques ranging from sending selective ACKs, dynamic window resizing, ACK pacing and other well-known TCP optimization techniques to adjust the TCP operating parameters to the actual cellular channel conditions. In various embodiments, transport layer function manager component 120 is configured to manage transport layer state mobility, such as TCP state mobility, between cell sites when a mobile node relocates between base stations by relocating the transport mobility state between the base stations. For example, if first user equipment 102 a experiences handover from first base station 104 a to second base station 102 b, transport layer function manager component 120 may be configured to receive the transport mobility state associated with first user equipment 102 a from first transport layer function proxy component 118 a, and send the transport mobility state to second transport layer function proxy component 118 b by way of transport layer function manager 120. Second transport layer function proxy component 118 b may then implement the transport mobility state for the wireless channel between second base station 108 b and first user equipment 108 b.

Each of the elements of FIG. 1 may couple to one another through simple interfaces (as illustrated), or through any other suitable connection (wired or wireless), which can provide a viable pathway for network communications. Additionally, any one or more of these elements may be combined or removed from the architecture based on particular configuration needs. Communication system 100 may facilitate transmission control protocol/Internet protocol (TCP/IP) communications for the transmission or reception of packets in a network, and may operate in conjunction with a user datagram protocol/IP (UDP/IP), or any other suitable protocol where appropriate and based on particular needs.

Communication system 100 may be tied to the 3rd Generation Partnership Project (3GPP) Evolved Packet System architecture, but alternatively this depicted architecture may be equally applicable to other environments such as a 4G LTE network. In general terms, 3GPP defines the Evolved Packet System (EPS) as specified in TS 23.401, TS.23.402, TS 23.203,etc. The EPS consists of IP access networks and an Evolved Packet Core (EPC). Access networks may be 3GPP access networks, such a GERAN, UTRAN, and E-UTRAN, or they may be non-3GPP IP access networks such as digital subscriber line (DSL), Cable, WiMAX, code division multiple access (CDMA) 2000, WiFi, or the Internet. Non-3GPP IP access networks can be divided into trusted and untrusted segments. Trusted IP access networks support mobility, policy, and AAA interfaces to the EPC, whereas untrusted networks do not. Instead, access from untrusted networks can be performed via the evolved PDG (ePDG), which provides for IPsec security associations to the user equipment over the untrusted IP access network. The ePDG (in turn) supports mobility, policy, and AAA interfaces to the EPC, similar to the trusted IP access networks.

Note that first user equipment 102 a and second user equipment 102 b can be associated with clients, customers, or end users wishing to initiate a communication in system 100 via some network. In one particular example, first user equipment 102 a and second user equipment 102 b reflects devices configured to generate wireless network traffic. The term ‘endpoint’ and ‘end-station’ are included within the broad term user equipment, as used herein. First user equipment 102 a and second user equipment 102 b can include devices used to initiate a communication, such as a computer, a personal digital assistant (PDA), a laptop or electronic notebook, a cellular telephone, an iPhone, a Blackberry, an Android, a smartphone, a tablet, an iPad, an IP phone, or any other device, component, element, equipment, or object capable of initiating voice, audio, video, media, or data exchanges within communication system 100. First user equipment 102 a and second user equipment 102 b may also include a suitable interface to the human user, such as a microphone, a display, or a keyboard or other terminal equipment. First user equipment 102 a and second user equipment 102 b may also be any device that seeks to initiate a communication on behalf of another entity or element, such as a program, a database, or any other component, device, element, or object capable of initiating an exchange within communication system 100. Data, as used herein in this document, refers to any type of numeric, voice, video, media, or script data, or any type of source or object code, or any other suitable information in any appropriate format that may be communicated from one point to another.

For purposes of illustrating certain example techniques of communication system 100, it is important to understand the communications that may be traversing the network. The following foundational information may be viewed as a basis from which the present disclosure may be properly explained. IP networks may provide users with connectivity to networked resources such as corporate servers, extranet partners, multimedia content, the Internet, and any other application envisioned within IP networks. While these networks generally function to carry data plane (user-generated) packets, they may also implicate control plane and management plane packets.

The term packet is used to refer to data plane packets, control plane packets, and management plane packets. In general, the data plane (also known as the forwarding plane, or the user plane) provides the ability to forward data packets; the control plane provides the ability to route data correctly; and the management plane provides the ability to manage network elements. For normal IP packet processing, an IP router typically has a data plane, a control plane, and a management plane. The IP packets themselves support all of the planes for any IP-based protocol, and the IP router has no inherent knowledge about whether each IP packet is a data, control, or management plane packet.

The vast majority of packets handled by a router travel through the router via the data plane. Data plane packets typically consist of end-station, user-generated packets, which are forwarded by network devices to other end-station devices. Data plane packets may have a transit destination IP address, and they can be handled by normal, destination IP address-based forwarding processes. Service plane packets can be a special type of data plane packets. Service plane packets are also user-generated packets, which may be forwarded by network elements to other end-station devices; however, they may require high-touch handling by a network element (above and beyond normal, destination IP address-based forwarding) to properly forward the packet.

Control plane packets commonly include packets that are generated by a network element (e.g., a router or a switch), as well as packets received by the network that may be used for the creation and operation of the network itself. Control plane packets may have a receive destination IP address. Protocols that “glue” a network together, such as address resolution protocol (ARP), border gateway protocol (BGP), and open shortest path first (OSPF), often use control plane packets. In a mobile network, the control plane may be responsible for session management, call setup support requirements, interfacing with external servers (e.g., querying for per-user policy and control information), managing high availability for a gateway, and configuring and managing the data plane. Packet overloads on an IP router's control plane can inhibit the routing processes and, as a result, degrade network service levels and user productivity, as well as deny specific users or groups of users' service entirely.

Management plane packets also typically include packets that are generated or received by a network element. This may also include packets generated or received by a management station that are used to manage a network. Management plane packets may also have a receive destination IP address. Examples of protocols that manage a device and/or a network, which may use management plane packets, include Telnet, Secure Shell (SSH), Trivial File Transfer Protocol (TFTP), Simple Network Management Protocol (SNMP), file transfer protocol (FTP), and Network Time Protocol (NTP).

Some Radio Access Network (RAN) vendors enable the execution of “services” inside a base station. These services may run as an application on virtual machines, and the virtual machines may be hosted on the base station's processing infrastructure. All (GTP-based) traffic sent from and received by the base station is routed through the base station hosted “services” to enable in-line service delivery on per-subscriber packet stream. The idea is that by hosting services in the base station, caching, storing and latency saving functions can execute and optimize for the wireless specifics. These services operate “on-top-of” the cellular infrastructure and are not integrated into the cellular networking standards.

In accordance with various embodiments, transport layer function proxy 118 operates a transport layer function proxy service as one of the base station's services that may potentially improve transport layer performance over a cellular wireless channel. In a particular embodiment, the transport layer function proxy located at the cell-site provides a back-to-back TCP session between a mobile node and remote server 124, such as a remote TCP server. When a mobile node establishes a TCP session to remote server 124, the cell-site TCP proxy in the base station intercepts all packets, and re-originates the TCP session from the base station as if the call originated from the mobile node. An advantage of this approach is that the TCP session that runs between the mobile node and the cell-site TCP proxy can be optimized specifically for communication over the cellular channel, while the TCP session between the cell-site TCP proxy and remote server 124 can be operated normally using indirect TCP (I-TCP). Particular TCP optimizations for delivery of TCP packets over the cellular wireless channel may include selective TCP packet acknowledgements, ACK packing, dynamic window resizing or other well-known TCP optimization techniques.

In a particular example, when a mobile node such as first user equipment 102 a establishes a TCP session through first transport layer function proxy 118 a operating at the cell site associated with first base station 118 a, first user equipment 102 a creates transport layer state managed by first transport layer function proxy 118 a. In at least one embodiment, the transport layer state parameters may include protocol control blocks (PCBs) of the TCP communication channel between first user equipment 102 a and first transport layer function proxy 118 a and the PCB for the TCP communication channel between first transport layer function proxy 118 a and remote server 124. This PCB may hold (congestion) window parameters, sequence numbers, and potentially received packets. When first user equipment 102 a relocates between first base station 104 a and second base station 104 b, second transport layer function proxy 118 b requests the transport layer state from first transport layer function proxy 118 a. In accordance with various embodiments, transport layer function manager 120 manages address assignment for the re-originated transport layer session, and tracks which cell-site proxies maintain which transport layer sessions. It should be noted that while various embodiments describe mobility of a transport layer proxy, such as a TCP proxy, between two base stations it should be understood that the principles described herein may be applicable to other situations such as relocating TCP proxies between two virtual machines operated in a data center hosting the TCP proxies as well as supporting mobility events of other types of applications hosted in the base station.

In accordance with various embodiments, to manage terminating and re-originating transport layer sessions, such as TCP sessions, at the cell-site, first transport layer function proxy 118 a handles the termination the TCP sessions over the cellular wireless communication channel and the re-origination of the TCP session at the cell-site, whereas transport layer function manager 120 keeps track of which cell site transport layer function proxy 118 a-118 b maintains what TCP sessions (i.e., PCBs). In the event of a mobility operation, in one or more embodiments, transport layer function manager 120 uses an out-of-band communication channel to the particular cell-site transport layer function proxy 118 a-118 b to obtain the state associated with the TCP sessions.

A TCP session is typically initiated by a mobile node, such as first user equipment 102 a, transmitting a TCP synchronize (SYN) packet. The TCP SYN packet is captured by first transport layer function proxy 118 a hosted on first base station 104 a as an indicator a new re-origination request is needed. In a particular embodiment, first transport layer function proxy 118 a is hosted on first base station 104 a by a virtual machine. The first transport layer function proxy 118 a allocates two PCBs: one PCB to terminate the cellular TCP session and one PCB to establish a new session towards remote server 124. First transport layer function proxy 118 a informs transport layer function manager 120 of the session parameters (e.g., source IP address, destination IP address, source TCP port, destination TCP port) by way of first control channel 122 a between first transport layer function proxy 118 a and transport layer function manager 120. In a particular embodiment, first control channel 122 a is an out-of-band control channel between first transport layer function proxy 118 a and transport layer function manager 120. First transport layer function proxy 118 a then forwards the TCP SYN packet to remote server 124.

In normal operation, first transport layer function proxy 118 a operates both ends of the TCP session by copying TCP control messages and data from one TCP session onto the other while optimizing the cellular TCP channel with optimization techniques. As previously discussed one or more well-known TCP optimization techniques may be used.

When first user equipment 102 a relocates between first base station 104 a and second base station 104 b, first user equipment 102 a expects its TCP sessions to persist. As a result, it is desirable to relocate the PCBs associated with the TCP session from first base station 104 a to second base station 104 b. Since in particular embodiments, the TCP proxies are operated essentially “over-the-top” inside the base station, the PCB relocation procedure cannot normally make use of existing cellular-based relocation techniques. Instead, a cell-site TCP proxy relies on transport layer function manager 120 to record which virtual machine on which base station holds the PCBs for the TCP session that needs to be continued. In particular embodiments, transport layer function manager 120 may record this information in a network addressable form.

On the occurrence of a mobility event, such as a handover, and the receiving of a first uplink TCP packet from first user equipment 102 a, where this packet is not a SYN packet, second transport layer function proxy 118 b of second base station 104 b (the new base station's cell-site TCP proxy) sends an indication to transport layer function manager 120 that second transport layer function proxy 118 b has no knowledge of the TCP session since second transport layer function proxy 118 b has not previously received an uplink TCP packet from first user equipment 102 a relating to a previous TCP session associated with first user equipment 102 a. The indication indicates to transport layer function manager 120 that second transport layer function proxy 118 b lacks the PCBs associated with the TCP session associated with first user equipment 102 a. If transport layer function manager 120 also has no knowledge of the TCP session, it indicates this to the second transport layer function proxy 118 b which can respond accordingly to first user equipment 102 a such as by sending an ICMP-UNREACH message indicating that the TCP session is unreachable. If transport layer function manager 120 has knowledge of the TCP session, transport layer function manager 120 may either obtain the TCP PCB state directly from first transport layer function proxy 118 a and forward the TCP PCB state data to second transport layer function proxy 118 b; or alternately, transport layer function manager 120 may inform second transport layer function proxy 118 b of the location of first transport layer function proxy 118 a (the former cell-site TCP proxy associated with first user equipment 102 a) to enable the second transport layer function proxy 118 b to obtain the TCP PCB state itself directly from first transport layer function proxy 118 a. As a result, all PCB state for a mobile node's TCP (or other transport layer) sessions may be relocated between cell sites in the event of the occurrence of a mobility event. In some embodiments, the cell site TCP proxy may buffer data between indirect TCP sessions, and this data can be forwarded through the same mechanism. In one or more embodiments, data buffered in the base station may be forwarded by regular cellular techniques such as using a 3GPP X2 interface.

When second transport layer function proxy 118 b has obtained the TCP PCB state previously associated with first transport layer function proxy 118 a, second transport layer function proxy 118 b reverts to “normal operation” and continues the TCP session using the same TCP PCB state parameters as those used by first transport layer function proxy 118 a.

If a TCP session terminates, it is the responsibility of the particular cell-site proxy (first transport layer function proxy 118 a or second transport layer function proxy 118 b) to inform transport layer function manager 120 that the TCP session no longer exists. In response, in particular embodiments transport layer function manager 120 clears may clear out its state information for the TCP session. In one or more embodiments, first transport layer function proxy 118 a, second transport layer function proxy 118 b, and transport layer function manager 120 may use existing TCP techniques (e.g. similar to those use by NA(P)T functions) to time-out TCP sessions that have become unresponsive. In some embodiments, if the mobility procedure of the PCB state between the two cell-site TCP proxies fails, for some reason (e.g., missing packets, no communication, or other reasons), TCP reset messages (TCP RSTs) or other message may be sent over both TCP sessions, or both TCP sessions may be enabled to time out after a predetermined time period has elapsed.

FIG. 2 is a simplified block diagram 200 illustrating a particular embodiment of first base station 104 a of communication system 100 of FIG. 1. First base station 104 a includes one or more processor(s) 202 a, a memory element 204 a, an out-of-band signaling component 206, and transport layer function proxy component 118. Processor(s) 202 are configured to execute software instructions to perform various operations of base station 104 a as described herein. Memory element 204 may be configured to store software instructions and data associated with base station 104 a. Out-of-band signaling component 206 is configured to establish an out-of-band control channel, such as first control channel 122 a, with transport layer function manager component 120 of GGSN/PGW 108. Transport layer function proxy component 118 is configured to implement the various transport layer proxying operations as described herein. In one or more embodiments, second base station 104 b may be implemented in a similar manner as first base station 104 a.

Although the particular embodiment illustrated in FIG. 2 shows base station 104 a as including a single node, it should be understood that in other embodiments base station 104 a may include any number of nodes. In still other embodiments, a cluster may be formed of any number of processing nodes distributed throughout a number of servers or other network elements within a communication network.

FIG. 3 is a simplified block diagram 300 illustrating a particular embodiment of GGSN/PGW 108 of communication system 100 of FIG. 1. GGSN/PGW 108 includes one or more processor(s) 302, a memory element 304, out-of-band signaling component 306, and transport layer function manager component 120. Processor(s) 302 are configured to execute software instructions to perform various operations of GGSN/PGW 108 as described herein. Memory element 304 may be configured to store software instructions and data associated with GGSN/PGW 108. Out-of-band signaling component 306 is configured to establish an out-of-band control channel, such as first control channel 122 a, with first transport layer function proxy 118 a of base station 104 a. Transport layer function manager component 120 is configured to implement the various transport layer function manager operations as described herein.

Although the particular embodiment illustrated in FIG. 3 shows GGSN/PGW 108 as including a single node, it should be understood that in other embodiments GGSN/PGW 108 may include any number of nodes. In still other embodiments, a cluster may be formed of any number of processing nodes distributed throughout a number of servers or other network elements within a communication network.

Note that in certain example implementations, the data communication and routing functions outlined herein may be implemented by logic encoded in one or more tangible media (e.g., embedded logic provided in an application specific integrated circuit [ASIC], network processors, digital signal processor [DSP] instructions, software [potentially inclusive of object code and source code] to be executed by a processor, or other similar machine, etc.). In some of these instances, a memory element (as shown in FIG. 2 and FIG. 3) can store data used for the operations described herein. This includes the memory element being able to store software, logic, code, or processor instructions that are executed to carry out the activities described in this Specification.

A processor can execute any type of instructions associated with the data to achieve the operations detailed herein in this Specification. In one example, the processor (as shown in FIG. 2 and FIG. 3) could transform an element or an article (e.g., data) from one state or thing to another state or thing. In another example, the data communication and routing activities outlined herein may be implemented with fixed logic or programmable logic (e.g., software/computer instructions executed by a processor) and the elements identified herein could be some type of a programmable processor, programmable digital logic (e.g., a field programmable gate array (FPGA), an erasable programmable read only memory (EPROM), an electrically erasable programmable ROM (EEPROM)) or an ASIC that includes digital logic, software, code, electronic instructions, or any suitable combination thereof.

In one example implementation, base stations 104 a-104 b and GGSN/PGW 108 may include software in order to achieve the data communication functions outlined herein. These devices may further keep information in any suitable memory element (random access memory (RAM), ROM, EPROM, EEPROM, ASIC, etc.), software, hardware, or in any other suitable component, device, element, or object where appropriate and based on particular needs. Any of the memory items discussed herein (e.g., database, tables, trees, queues, caches, etc.) should be construed as being encompassed within the broad term ‘memory element.’ Similarly, any of the potential processing elements, modules, and machines described in this Specification should be construed as being encompassed within the broad term ‘processor.’ Each of these elements can also include suitable interfaces for receiving, transmitting, and/or otherwise communicating data or information in a network environment.

Base stations 104 a-104 b and GGSN/PGW 108 are network elements configured to perform the activities disclosed herein. As used herein in this Specification, the term ‘network element’ may include any suitable hardware, software, components, modules, interfaces, or objects operable to exchange information in a network environment. Further, the term network element as discussed herein encompasses (but is not limited to) devices such as routers, switches, gateways, bridges, loadbalancers, firewalls, inline service nodes, proxies, clients, servers processors, modules, or any other suitable device, component, element, proprietary device, network appliance, or object operable to exchange information in a network environment. This may be inclusive of appropriate algorithms and communication protocols that allow for the effective exchange of data or information.

FIGS. 4A-4B are a simplified flow diagram 400 illustrating potential operations of communication system 100 associated with one embodiment of the present disclosure. In 402, first user equipment 102 a sends a TCP synchronize (SYN) message to first transport layer function proxy 118 a of first base station 104 a indicating that first user equipment 102 a is requesting the establishment of a user TCP session with remote server 124. In 404, first transport layer function proxy 118 a allocates a first PCB to terminate a first wireless TCP session (TCP session #1) between first user equipment 104 a and first transport layer function proxy 118 a at first transport layer function proxy 118 a. First transport layer function proxy 118 a further allocates a second PCB to establish a second TCP session (TCP session #2) between first transport layer function proxy 118 a and remote server 124. In 406, the first TCP session (TCP session #1) is established between first user equipment 102 a and first transport layer function proxy 118 a using the first PCB. In 408, the second TCP session (TCP session #2) is established between first transport layer function proxy 118 a and remote server 124 using the second PCB. In a particular embodiment, first transport layer function proxy 118 a forwards the TCP SYN message to remote server 124 as part of establishing the TCP session. First transport layer function proxy 118 a may then operate both ends of the TCP session by copying TCP control messages and data between the first TCP session (TCP session #1) and the second TCP session (TCP session #2) in order to maintain the overall user TCP session between first user equipment 102 a and remote server 124.

In 410, first transport layer function proxy 118 a sends the TCP session parameters, such as the PCB information, to transport layer function manager 120 using first control channel 122 a. In a particular embodiment, the first control channel 122 a is an out-of-band control channel established between first transport layer function proxy 118 a and transport layer function manager 120. In a particular embodiment, the TCP session parameters may include a source IP address, a destination IP address, a source port, and a destination port associated with the TCP session. In 412, transport layer function manager 120 records or stores the TCP session parameters associated with first transport layer function proxy 118 a within a memory.

In 414, first transport layer function proxy 118 a may optimize the wireless TCP channel between first user equipment 102 a and first base station 104 a using one or more TCP optimization techniques such as sending selective acknowledgements, implementing dynamic window resizing, acknowledgement pacing and other TCP optimization techniques. In 416, first user equipment 102 a experiences a handover or other mobilization event between first base station 104 a and second base station 104 b. In 418, second transport layer function proxy 118 b of second base station 104 b receives a first uplink TCP packet from first user equipment 102 a. In 420, second transport layer function proxy 118 b determines if the TCP session parameters associated with the first uplink TCP packet are known to second transport layer function proxy 118 b. Since in this particular example, second transport layer function proxy 118 b has not previously received a TCP packet associated with the current TCP from first user equipment 102 a, second transport layer function proxy 118 b determines that the TCP session parameters are not known.

In 422, second transport layer function proxy 118 b sends a request for the TCP session PCB state parameters to transport layer function manager 120 within GGSN/PGW 108 of the core network. In 424, transport layer function manager 120 sends a TCP session PCB state request message to first transport layer function proxy 118 a requesting the TCP session PCB state parameters associated with the TCP session from first transport layer function proxy 118 a. In 426, first transport layer function proxy 118 a sends a TCP session PCB state response message including the TCP session PCB state parameters to transport layer function manager 120. In 428, transport layer function manager 120 provides the TCP session PCB state parameters to second transport layer function proxy 118 b. In an alternative embodiment, transport layer function manager 120 may send an indication to second transport layer function proxy 118 b that the TCP session PCB state parameters may be obtained by second transport layer function proxy 118 b from first transport layer function proxy 118 a rather than directly providing the TCP session PCB state parameters from transport layer function manager 120.

In 430, second transport layer function proxy 118 b establishes a third TCP session (TCP session #3) with first user equipment 102 a using the TCP session PCB state parameters obtained from first transport layer function proxy 118 a. In 432, second transport layer function proxy 118 b establishes a fourth TCP session (TCP session #4) with remote server 124 using the TCP session PCB state parameters obtained from first transport layer function proxy 118 a. Second transport layer function proxy 118 b may then operate both ends of the TCP session by copying TCP control messages and data between the third TCP session (TCP session #3) and the fourth TCP session (TCP session #4) in order to maintain the overall TCP session between first user equipment 102 a and remote server 124. In 434, second transport layer function proxy 118 b may optimize the wireless TCP channel between first user equipment 102 a and second base station 104 b using one or more TCP optimization techniques such as sending selective acknowledgements, implementing dynamic window resizing, acknowledgement pacing and other TCP optimization techniques.

FIG. 5 is simplified flowchart 500 illustrating potential operations associated with first transport layer function proxy 118 a according to one embodiment of the present disclosure. In 502, first transport layer function proxy 118 a located within first base station 104 a of the radio access network receives a first request from first user equipment 102 a. The first request includes a request to establish a user session between first user equipment 102 a and remote server 124. In 504, first transport layer function proxy 118 a allocates session state parameters to a first transport layer session and a second transport layer session. The session state parameters include a first protocol control block (PCB) associated with the first transport layer session and a second protocol control block (PCB) associated with the second transport layer session. In a particular embodiment, one or more of the first protocol control block and the second protocol control block include one or more of a source network address (e.g. a source IP address), a destination network address (e.g., a destination IP address), a source port, and a destination port associated with the user session.

In 506, first transport layer function proxy 118 a establishes a first transport layer session between first user equipment 102 a and first transport layer function proxy 118 a. In 508, first transport layer function proxy 118 a establishes a second transport layer session between first transport layer function proxy 118 a and remote server 124. In 510, first transport layer function proxy 118 a establishes a first control channel between first transport layer function proxy 118 a and transport layer function manager 120 within the core network. In a particular embodiment, the first control channel is an out-of-band channel between first transport layer function proxy 118 a and transport layer function manager 120. In 512, first transport layer function proxy 118 a sends the session state parameters associated with the first transport layer session and the second transport layer session to the transport layer function manager 120 using the first control channel. In one or more embodiments, first transport layer function proxy 118 a may further send network address information of the first transport layer function proxy 118 a to transport layer function manager.

In 514, first transport layer function proxy 118 a optimizes operating parameters of the first transport layer session based upon wireless channel conditions experienced by first user equipment 118 a. The operations then end.

FIG. 6 is simplified flowchart 600 illustrating potential operations associated with second transport layer function proxy 118 b according to one embodiment of the present disclosure. In 602, second transport layer proxy 118 b receives an uplink transport layer packet associated with the user session from first user equipment 102 a. In a particular embodiment, the uplink transport layer packet is received by second transport layer function proxy 118 b when first user equipment 102 a experiences handover between first base station 104 a including first transport layer function proxy 118 a and second base station 104 b including second transport layer function proxy 118 b. In 602, second transport layer function proxy 118 b determines whether the session state parameters associated with the user session are known to second transport layer function proxy 118 b. If the session state parameters are known to second transport layer function proxy 118 b, the operations continue to step 610 which will be further described below.

If the session state parameters are not known to second transport layer function proxy 118 b, second transport layer function proxy 118 b requests the session state parameters from transport layer function manager 120 in 606. In 608, second transport layer function proxy 118 b receives the session state parameters associated with the user session from either transport layer function manager 120 or from first transport layer function proxy 118 b. In some embodiments, transport layer function manager 120 receives the session state parameters from first transport layer function proxy 120 and provides the session state parameters to second transport layer function proxy 118 b. In a particular embodiment, transport layer function manager 120 receives the request for session state parameters and sends the second state parameters via a second control channel established between transport layer function manager 120 and second transport layer function protocol 118 b. In still other embodiment, transport layer function manager 120 provides second transport layer function proxy 118 b with the location of first transport layer function proxy 118 a, and second transport layer function proxy 118 b requests the session state parameters directly from first transport layer function proxy 118 a.

In 610, second transport layer function proxy 118 b establishes a transport layer user session between first user equipment 102 a and remote server 124 using the user session state parameters. In at least one embodiment, the transport layer user session is established by second transport layer function proxy establishing a first transport layer session between first user equipment 102 a and second transport layer function proxy 118 b, and a second transport layer session between second transport layer function proxy 118 b and remote server 124. In 612, second transport layer function proxy 118 b forwards the uplink transport layer packet to remote server 120 using the established transport layer user session. The operations then end.

Note that with the example provided above, as well as numerous other examples provided herein, interaction may be described in terms of two, three, or four network elements. However, this has been done for purposes of clarity and example only. In certain cases, it may be easier to describe one or more of the functionalities of a given set of flows by only referencing a limited number of network elements. It should be appreciated that communication system 100 (and its teachings) are readily scalable and can accommodate a large number of components, as well as more complicated/sophisticated arrangements and configurations. Accordingly, the examples provided should not limit the scope or inhibit the broad teachings of communication system 100 as potentially applied to a myriad of other architectures.

It is also important to note that the steps in the preceding flow diagrams illustrate only some of the possible scenarios and patterns that may be executed by, or within, communication system 100. Some of these steps may be deleted or removed where appropriate, or these steps may be modified or changed considerably without departing from the scope of the present disclosure. In addition, a number of these operations may have been described as being executed concurrently with, or in parallel to, one or more additional operations. However, the timing of these operations may be altered considerably. The preceding operational flows have been offered for purposes of example and discussion. Substantial flexibility is provided by communication system 100 in that any suitable arrangements, chronologies, configurations, and timing mechanisms may be provided without departing from the teachings of the present disclosure.

Numerous other changes, substitutions, variations, alterations, and modifications may be ascertained to one skilled in the art and it is intended that the present disclosure encompass all such changes, substitutions, variations, alterations, and modifications as falling within the scope of the appended claims. It is also imperative to note that the architecture outlined herein can be used in different types of network applications. The architecture of the present disclosure can readily be used such environments, as the teachings of the present disclosure are equally applicable to all such alternatives and permutations.

In order to assist the United States Patent and Trademark Office (USPTO) and, additionally, any readers of any patent issued on this application in interpreting the claims appended hereto, Applicant wishes to note that the Applicant: (a) does not intend any of the appended claims to invoke paragraph six (6) of 35 U.S.C. section 112 as it exists on the date of the filing hereof unless the words “means for” or “step for” are specifically used in the particular claims; and (b) does not intend, by any statement in the specification, to limit this disclosure in any way that is not otherwise reflected in the appended claims. 

1-27. (canceled)
 28. A computer-implemented method comprising: receiving an uplink transport layer packet associated with a user session between a first user equipment and a remote server, wherein a first transport layer session is established between the first user equipment and a first transport layer proxy located within an access network, wherein a second transport layer session is established between the first transport layer proxy and the remote server, wherein the uplink transport layer packet is received by a second transport layer proxy located within the access network from the first user equipment, the user session having associated session state parameters; and upon determining, by operation of one or more computer processors, that the session state parameters associated with the user session are not known to the second transport layer proxy, requesting, by the second transport layer proxy, the session state parameters from a transport layer function manager within a core network, whereupon the transport layer function manager is configured to request the session state parameters from the first transport layer proxy and send the session state parameters to the second transport layer proxy.
 29. The computer-implemented method of claim 28, wherein a first control channel is established between the first transport layer proxy and the transport layer function manager, wherein the session state parameters are sent to the transport layer function manager using the first control channel.
 30. The computer-implemented method of claim 28, wherein the session state parameters are associated with the first transport layer session and the second transport layer session, wherein the session state parameters are stored within the core network and by the transport layer function manager.
 31. The computer-implemented method of claim 28, further comprising: sending network address information of the first transport layer proxy to the transport layer function manager.
 32. The computer-implemented method of claim 28, further comprising: allocating the session state parameters to the first transport layer session and the second transport layer session by the first transport layer proxy.
 33. The computer-implemented method of claim 28, wherein the session state parameters include a first protocol control block associated with the first transport layer session and a second protocol control block associated with the second transport layer session.
 34. The computer-implemented method of claim 28, wherein a first control channel is established between the first transport layer proxy and the transport layer function manager, wherein the session state parameters are sent to the transport layer function manager using the first control channel; wherein the session state parameters are associated with the first transport layer session and the second transport layer session, wherein the session state parameters are stored within the core network and by the transport layer function manager, wherein the computer-implemented method further comprises: sending network address information of the first transport layer proxy to the transport layer function manager; and allocating the session state parameters to the first transport layer session and the second transport layer session by the first transport layer proxy.
 35. The computer-implemented method of claim 34, wherein the session state parameters include a first protocol control block associated with the first transport layer session and a second protocol control block associated with the second transport layer session; wherein at least one of the first protocol control block and the second protocol control block include one or more of a source network address, a destination network address, a source port, and a destination port associated with the user session; wherein the control channel is an out-of-band channel between the first transport layer proxy and the transport layer function manager, wherein the first transport layer proxy resides within a first base station, wherein the transport layer function manager resides within a packet gateway.
 36. The computer-implemented method of claim 35, wherein the control channel is an out-of-band channel between the first transport layer proxy and the transport layer function manager, wherein the first transport layer proxy resides within a first base station, wherein the transport layer function manager resides within a packet gateway, wherein the computer-implemented method further comprises: optimizing operating parameters of the first transport layer session based upon wireless channel conditions experienced by the first user equipment; and receiving the session state parameters from the transport layer function manager.
 37. The computer-implemented method of claim 36, further comprising: establishing a transport layer user session between the first user equipment and the remote server using the session state parameters; and forwarding the uplink transport layer packet to the remote server by the second transport layer proxy using the transport layer user session; wherein the uplink transport layer packet is received by the second transport layer proxy when the first user equipment experiences handover between a first base station including the first transport layer proxy and a second base station including the second transport layer proxy.
 38. A non-transitory computer-readable medium containing a program executable to perform an operation comprising: receiving an uplink transport layer packet associated with a user session between a first user equipment and a remote server, wherein a first transport layer session is established between the first user equipment and a first transport layer proxy located within an access network, wherein a second transport layer session is established between the first transport layer proxy and the remote server, wherein the uplink transport layer packet is received by a second transport layer proxy located within the access network from the first user equipment, the user session having associated session state parameters; and upon determining, by operation of one or more computer processors when executing the program, that the session state parameters associated with the user session are not known to the second transport layer proxy, requesting, by the second transport layer proxy, the session state parameters from a transport layer function manager within a core network, whereupon the transport layer function manager is configured to request the session state parameters from the first transport layer proxy and send the session state parameters to the second transport layer proxy.
 39. The non-transitory computer-readable medium of claim 38, wherein a first control channel is established between the first transport layer proxy and the transport layer function manager, wherein the session state parameters are sent to the transport layer function manager using the first control channel.
 40. The non-transitory computer-readable medium of claim 38, wherein the session state parameters are associated with the first transport layer session and the second transport layer session, wherein the session state parameters are stored within the core network and by the transport layer function manager.
 41. The non-transitory computer-readable medium of claim 38, wherein the operation further comprises: sending network address information of the first transport layer proxy to the transport layer function manager.
 42. The non-transitory computer-readable medium of claim 38, wherein the operation further comprises: allocating the session state parameters to the first transport layer session and the second transport layer session by the first transport layer proxy.
 43. An apparatus comprising: one or more computer processors; a memory containing a program which, when executed by the one or more computer processors, performs an operation comprising: receiving an uplink transport layer packet associated with a user session between a first user equipment and a remote server, wherein a first transport layer session is established between the first user equipment and a first transport layer proxy located within an access network, wherein a second transport layer session is established between the first transport layer proxy and the remote server, wherein the uplink transport layer packet is received by a second transport layer proxy located within the access network from the first user equipment, the user session having associated session state parameters; and upon determining that the session state parameters associated with the user session are not known to the second transport layer proxy, requesting, by the second transport layer proxy, the session state parameters from a transport layer function manager within a core network, whereupon the transport layer function manager is configured to request the session state parameters from the first transport layer proxy and send the session state parameters to the second transport layer proxy.
 44. The apparatus of claim 43, wherein a first control channel is established between the first transport layer proxy and the transport layer function manager, wherein the session state parameters are sent to the transport layer function manager using the first control channel.
 45. The apparatus of claim 43, wherein the session state parameters are associated with the first transport layer session and the second transport layer session, wherein the session state parameters are stored within the core network and by the transport layer function manager.
 46. The apparatus of claim 43, wherein the operation further comprises: sending network address information of the first transport layer proxy to the transport layer function manager.
 47. The apparatus of claim 43, wherein the operation further comprises: allocating the session state parameters to the first transport layer session and the second transport layer session by the first transport layer proxy. 